import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

// 使用 jdbc 进行查询操作
public class Demo4 {
    public static void main(String[] args) throws SQLException {
        // 1. 创建 DataSource
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("cjc123456");

        // 2. 与数据库建立连接
        Connection connection = dataSource.getConnection();

        // 3. 构造sql语句
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);

        // 4. 执行 sql ,返回一个 ResultSet对象
        // ResultSet 表示查询到的结果集合(临时表)
        ResultSet resultSet = statement.executeQuery();

        // 5. 遍历结果集合
        // 通过next()方法 能够获取到结果集合的每一行数据,如果获取到最后一行的数据时，再执行 next 会返回false
        while(resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id = " + id + ", name = " + name);
        }

        // 6. 释放资源，后获取到的资源先释放
        resultSet.close();
        statement.close();
        connection.close();
    }
}
